Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a plain-text format that is both human-readable and machine-readable. One version of XML is defined in the XML 1.0 Specification produced by the World Wide Web Consortium (W3C) and dated Nov. 26, 2008, which is incorporated herein by reference in its entirety. The XML 1.0 Specification defines an XML document as a text that is well-formed and valid.
An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by the XML 1.0 Specification itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, boolean predicates associated with the content, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints. One example schema language in widespread use is the XML Schema Definition (XSD) language as defined in the XSD 1.1 Specification produced by the W3C and dated Apr. 5, 2012, which is incorporated herein by reference in its entirety.
The process of checking to see if an XML document conforms to an XSD document is called validation, which is separate from XML's core concept of syntactic well-formedness. All XML documents are defined as being well-formed, but an XML document is on check for validity where the XML processor is “validating,” in which case the document is checked for conformance with its associated XSD document. An XML document is only considered valid if it satisfies the requirements of the XSD document with which it has been associated.
Although the plain-text human-readable aspect of XML and XSD documents may be beneficial in many situations, this human-readable aspect may also lead to XML and XSD documents that are large in size and therefore incompatible with devices with limited memory or storage capacity. Efforts to reduce the size of XML and XSD documents have therefore often eliminated this plain-text human-readable aspect in favor of more compact binary representations.
EXI is a Binary XML format. EXI is one of the most prominent binary XML efforts to encode XML documents in a binary data format rather than plain text. In general, using a binary XML format reduces the size and verbosity of XML documents, and may reduce the cost in terms of time and effort involved in parsing XML documents. EXI is formally defined in the EXI Format 1.0 Specification produced by the W3C and dated Mar. 10, 2011, which is incorporated herein by reference in its entirety. An XML document may be encoded in an EXI format as a separate EXI document. An XSD document may also be encoded as a separate EXI schema document.
When an XSD document is encoded as an EXI schema document, the EXI schema document generally includes various encoded data fields that are employed in validation tasks. Unfortunately, however, the inclusion of these various encoded data fields may cause the size of the EXI schema document to remain relatively large in size. This relatively large size may be problematic where the EXI schema document is transferred to an EXI processor that is employed in a device with limited memory or storage capacity.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some embodiments described herein may be practiced.